package com.smrs.basicdata.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jof.framework.util.PageInfo;
import com.jof.framework.util.Pager;
import com.smrs.basicdata.dao.StoreDao;
import com.smrs.basicdata.enums.StoreTypeEnum;
import com.smrs.basicdata.model.StoreModel;
import com.smrs.basicdata.vo.StoreSearchModel;
import com.smrs.service.BaseService;
@Service(value="storeService")
public class StoreService extends BaseService<StoreModel,Long>{
	@Autowired
	private StoreDao storeDao;
	
	public List<StoreModel> getAll(){
		List<StoreModel> list = storeDao.getAll();
		return list;
	}
	

	
	public List<StoreModel> getRegionStoreList(){
		List<StoreModel> list = storeDao.getStoreByStoreType(StoreTypeEnum.region);
		return list;
	}
	

	public List<StoreModel> getMajorStoreList(){
		List<StoreModel> model = storeDao.getMajorStore();
		return model;
	}

	public List<StoreModel> getChilden(Long id){
		List<StoreModel> model = storeDao.getChilden(id);
		return model;
	}
	
	public StoreModel getMajorStore(){
		List<StoreModel> list = storeDao.getMajorStore();
		StoreModel model =list.get(0);		
		return model;
	}
	
	public StoreDao getPerformDao(){
		return storeDao;
	}
	
	public Pager<StoreModel> getByNameLikePager(final StoreSearchModel model){
		String name = model.getStore().getName();
		model.getStore();
		StoreModel store = model.getStore();
		HashMap<String,Integer> nameValues = new HashMap<String,Integer>();
		if(store.getStoreType()!=0){
			nameValues.put("storeType",store.getStoreType());
		}
		
		Pager<StoreModel> pager = storeDao.getByNameLikePager(name,model.getPager(),nameValues); 
		
		return pager;
		//return null;
	}
	
	
	public Pager<StoreModel> findByUser(StoreSearchModel model,Pager<StoreModel> pager){	
		Pager<StoreModel> tempPager = storeDao.findByUser(model, pager); 
		return tempPager;
	}
	
	public Pager<StoreModel> getByNameLikeAndTypePager(final StoreSearchModel model,StoreTypeEnum storeType){
		StoreModel store = model.getStore();
		String name = null;
		if(store==null){
			name = null;
		}else{
			name = model.getStore().getName();
		}
		Pager<StoreModel> pager = storeDao.getByNameLikeAndTypePager(name,model.getPager(),storeType); 
		return pager;		
	}
	
	public List<StoreModel> findByRegionId(Long regionId){
		List<StoreModel> list = storeDao.findByRegionId(regionId);
		return list;
	}
} 
